/**
 * 系统菜单，路由，按钮的配置文件
 */
export interface MRAItem {
  //路径，用于客户端路由
  path: string;
  //标题
  name: string;
  //编码，用于权限控制
  code: string;
  //重定向
  redirect?: string;
  //打开的页面组件
  component?: string;
  //扩展字段，都放在这里 先参考: MetaProps
  meta: { [key: string]: any };
  //子菜单
  children?: Array<MRAItem>;
}

/**
 * 按钮配置
 */
export interface MRAButton {
  //标题
  title: string;
  //图标
  icon: string;
  //编码，用于权限控制
  code: number | string;
  //按钮的类型，对客户端控件的类型
  type: string;
  //按钮关键字，用于表单操作类型的匹配
  btnKey: string;
  //如果操作的是表单，表单关键字，服务端生成，唯一
  formKey: string;
}

// /* 菜单的配置 */
// export interface MenuOptions {
//   //路径：router
//   path: string;
//   //标题：
//   title: string;
//   //编码：权限用
//   code?: string;
//   //图标
//   icon?: string;
//   //是否外连接
//   isLink?: string;
//   //
//   close?: boolean;
//   //子菜单
//   children?: MenuOptions[];
// }

/* 菜单的配置 */
export interface MenuOptions {
  path: string;
  name: string;
  code?: string; //编码：权限用
  component?: string | (() => Promise<unknown>);
  redirect?: string;
  meta: MetaProps;
  children?: MenuOptions[];
}
export interface MetaProps {
  icon: string;
  title: string;
  activeMenu?: string;
  isLink?: string;
  isHide: boolean;
  isFull: boolean;
  isAffix: boolean;
  isKeepAlive: boolean;
}
